Systems storing a large amount of data must efficiently store, update, and retrieve the data in order to be useful. Some such systems employ a distributed data storage system that uses a plurality of servers to allow even a large number of geographically diverse users to easily update and retrieve data. When a request to store, update, or delete stored data is received the request is routed to the appropriate server. The data then changed in accordance with the request. Some requests will alter only a single data value, while others will request to alter a large range of data values.
In addition, data storage systems may find it useful to provide historical information for a particular piece of data. Historical data allows changes in a particular piece of data to be tracked over time. Depending on the amount and quality of stored historical information, it may be possible to determine the exact value of particular data at a specific point in the past. Thus, storing this historical data necessitates a large amount of historical data storage. The data storage system must be able to efficiently store historical data information for the data storage system to be useful and cost effective. Techniques which improve the efficiency of adding, storing, and removing data from a data storage system greatly improve the usefulness of such systems.